package demo.pattern.proxy.statics;

import demo.pattern.proxy.Payment;
import demo.pattern.proxy.ToBPayment;
import demo.pattern.proxy.ToCPayment;

public class Test {
	public static void main(String[] args) {
		/**
		 * 用户面向的都是Payment接口，调用的都是接口的服务
		 * 可以使用spring框架的依赖注入来隐藏“实现类不同”的细节
		 */
		Payment payment = new ToBPaymentProxy(new ToBPayment());
		payment.pay();

		// 缺陷就是“切入逻辑”不能复用，当需要将切入逻辑引入其他切点（方法）时，需要编写多个代理类。
		Payment payment1 = new ToCPaymentProxy(new ToCPayment());
		payment1.pay();
	}

}
